1. Field of the Invention
This invention relates to the field of computer file systems.
Portions of the disclosure of this patent document contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office file or records, but otherwise reserves all copyright rights whatsoever. Sun, Sun Microsystems, the Sun logo, Solaris, Java, JavaOS, JavaStation, HotJava Views and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.
2. Background
Embedded Devices
The use of platform independent programming languages, such as the Java(trademark) programming language, has been adapted for use in non traditional computing environments. These environments include limited resource devices, referred to as xe2x80x9cembeddedxe2x80x9d devices and include cell phones, xe2x80x9cpersonal digital assistantsxe2x80x9d (PDAs), smart cards, appliances, and other environments that may lack the number and size of traditional computer system resources. For example, such limited resource devices may have limited memory, reduced processing power, and simple or no operating systems. Such limited resources can prevent the use of some programming languages on the limited resource device. One disadvantage, for example, of embedded devices is the absence of a traditional file system. This creates an obstacle to the ability to access files required by a programming language and makes it difficult to upgrade or change software versions, applications, classfiles and/or features of an embedded device.
Example Embedded Device (Personal Digital Assistant (PDA))
One example of an embedded device is a PDA. FIG. 13 illustrates a PDA, such as the PalmPilot produced by 3Com Corporation. PDA device 1300 is equipped with touch screen display 1305, mechanical buttons (1306 and 1307), a stylus (not shown), and serial port 1302. A universal asynchronous receiver transmitter (UART) 1301 is used to convert information from the PDA for transmission through serial port 1302, and to convert serial information received through serial port 1302. Mechanical buttons 1306 are provided for user input, such as for the selection of predefined applications. Mechanical buttons 1307 are provided for scrolling graphics on touch screen display 1305.
Touch screen display 1305 is separated into application display area 1308 and user input area 1309. Application display area 1308 displays the graphical output of the current application being executed by PDA device 1300. User input area 1309 contains software buttons 1310, alphabet script input area 1311, and numeric script input area 1312. Software buttons 1310 are for performing system or application-based selection operations. Alphabet script input area 1311 is used to enter alphabetical characters with the electronic stylus. Similarly, numeric script input area 1312 is used to enter numeric characters with the electronic stylus. Character recognition software within the PDA converts user input in areas 1311 and 1312 into data characters.
An advantage of platform independent programming languages such as the Java programming language is the ability to load components of a program, such as an applet, at runtime. (This behavior is specified in the Java Language Specification (JLS) in section 12.2 (pages 218-9) and in the Java Virtual Machine Specification (JVMS) in section 2.16.2 (page 43) and is accomplished with a class loader, a part of the Java virtual machine.
Because PDAs do not typically have access to a file system (e.g. through a network connection) from which classfiles can be loaded, standard class loading techniques cannot be used. One solution is to preload classfiles into a non-volatile memory, such as a ROM (read only memory). This lacks flexibility.
The invention provides a method of creating and periodically loading a database of classfiles on a non traditional computer device, such as a PDA (personal digital assistant), cellular telephone, pager, smartcard, Java Ring, or other embedded device. A resident Java virtual machine loads classes from this database instead of loading them from a file system. The embedded device is periodically updated by connecting it to a network or computer that includes a classfile source. At this time, records can be added to, or deleted from, the database (where the records are classfiles). The management of the classfile database on the embedded device is independent of the virtual machine on the embedded device. One embodiment of the invention comprises an embedded device with a virtual machine, a classfile database, a database manager, and a remote database loader. The embedded device and virtual machine can function even when not connected to the classfile source.